#ifndef MTF_H
#define MTF_H

#include "../include/step.h"
#include "../../include/hzstream.h"
#include <stdint.h>

using namespace step;
namespace mtf{
class MTF:public Step{
	public:
		MTF();
		virtual ~MTF();

		void encode(uint8_t* in_buf,uint8_t* out_buf,uint32_t buf_size); 
		void decode(uint8_t* in_buf,uint8_t* out_buf,uint32_t buf_size);
		
		void encode(hzstream* hz);
		void decode(hzstream* hz);

	private:
		void initial();
		static const uint32_t alphabet_size = 256;
		uint32_t alphabet[alphabet_size];
};
} //namespace mtf
#endif //MTF_H
